/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controllers;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import javax.management.Query;
import models.*;
import play.db.jpa.GenericModel.JPAQuery;
import play.db.jpa.JPA;
import play.modules.pdf.PDF;
import play.mvc.Controller;

/**
 *
 * @author Administrador
 */
public class CAlumno extends Controller {

    static String fechaV, horaV;

    public static void panelAlumno() {

        //-- Extraemos los datos del Proceso electoral
        Proceso_Electoral PE = Proceso_Electoral.find("order by id DESC").first();

        if (PE == null) {
            PE = new Proceso_Electoral();
        }

        Alumno AL = Alumno.connect(frontController.username);

        render(AL, PE);

    }

    public static void iniciarSufragio() throws ParseException {

        //-- Extraemos los datos del Proceso electoral
        Proceso_Electoral PE = Proceso_Electoral.find("order by id DESC").first();
        Alumno AL = Alumno.connect(frontController.username);

        if (PE == null) {
            PE = new Proceso_Electoral();
            renderTemplate("CAlumno/sinProceso.html", PE, AL);
        } else {
            if (AL.getFlag_sufragio().equals("si")) {
                //usted ya sufrago
                renderTemplate("CAlumno/yaSufrago.html", AL);
            } else {
                
                
                Calendar cal = Calendar.getInstance();
                String ch = ""+cal.get(Calendar.HOUR_OF_DAY)+"."+cal.get(Calendar.MINUTE);       
                String hoy = ""+cal.get(Calendar.DATE)+"/"+(cal.get(Calendar.MONTH)+1) +"/"+cal.get(Calendar.YEAR);
           
                
                double ha = Double.parseDouble(ch);
                double hf = Double.parseDouble(PE.getHora_fin());
                double hi = Double.parseDouble(PE.getHora_inicio());
                
                System.out.println("Hoy es: " + hoy+ "Hora: "+ch);
                
                if (hf > ha && ha > hi && PE.getFecha_proceso().equals(hoy)) {
                    List<Candidatos_AU> CA_AU = Candidatos_AU.find("order by id DESC").fetch();
                    List<Candidatos_CF> CA_CF = Candidatos_CF.find("order by id DESC").fetch();
                    List<Candidatos_CU> CA_CU = Candidatos_CU.find("order by id DESC").fetch();

                    render(CA_AU, CA_CF, CA_CU, PE, AL);
                } else {
                    renderTemplate("CAlumno/fueraFechaProceso.html", PE, AL);
                }
            }
        }
    }

    public static void guardarVoto() {
        String op_cf = params.get("CF");
        Votos_Acumulados V_CF = Votos_Acumulados.connect(op_cf);
        V_CF.setVotos_cf("" + (Integer.parseInt(V_CF.getVotos_cf()) + 1));
        V_CF.save();

        String op_cu = params.get("CU");
        Votos_Acumulados V_CU = (Votos_Acumulados.connect(op_cu));
        V_CU.setVotos_cu("" + (Integer.parseInt(V_CU.getVotos_cu()) + 1));
        V_CU.save();

        String op_au = params.get("AU");
        Votos_Acumulados V_AU = (Votos_Acumulados.connect(op_au));
        V_AU.setVotos_au("" + (Integer.parseInt(V_AU.getVotos_au()) + 1));
        V_AU.save();


        //---Almacenamos en la tabla Estadisticas
        Alumno AL = Alumno.connect(frontController.username);
        AL.setFlag_sufragio("si");
        AL.save();
        
        String fecha = (new SimpleDateFormat("dd/MM/yy")).format(new Date());
        fechaV = fecha;
        String hora = (new SimpleDateFormat("h:mm a")).format(new Date());
        horaV = hora;
        new Estadisticas(fecha + " " + hora, op_cf, op_cu, op_au, AL.getEap(), AL.getEdad(), AL.getSexo(), "2009").save();

        renderTemplate("CAlumno/constancia.html", AL, fecha, hora);
    }

    public static void obtenerReporte() {

        Alumno AL = Alumno.connect(frontController.username);


        PDF.renderTemplateAsPDF(null, (new PDF.MultiPDFDocuments()).add("CAlumno/constanciaPDF.html", new PDF.Options()), AL, fechaV, horaV);

    }
}
